package net.gazhi.delonix.core.annonation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;

/**
 * Controller 方法的注解<br>
 * 设定功能点的名字，用于配置权限时显示
 * 
 * @author Jeffrey Lin
 *
 */
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApiAction {

	@AliasFor("name")
	String value() default "";

	/**
	 * 功能点的名字
	 * 
	 * @return
	 */
	@AliasFor("value")
	String name() default "";

	/**
	 * API 的级别，用于标识不同的API(公开的/需要Token的普通用户权限/超级管理员才有的API)
	 * 
	 * @return
	 */
	ApiLevel level() default ApiLevel.GRANT_REQUIRED;

}
